﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;

namespace IBoLT
{
	class CommandsIBoLT
    {

        #region Объявление команд 
        // Объявление команд //


// Файл /////////////////////////////////////////////////////////////////////////////
		private static RoutedUICommand creviewDB;	// Команда "Обзор БД"
		private static RoutedUICommand cexit;		// Команда "Выход"

	// Окно создать 
		private static RoutedUICommand cnewCreate;	// Команда "Создать"

    // Окно "Обзор базы"
        private static RoutedUICommand cloadDataInTheTable; // Команда "заполнить таблицу"
/////////////////////////////////////////////////////////////////////////////////////

// Генераторы ///////////////////////////////////////////////////////////////////////
		private static RoutedUICommand ctree;		// Команда "Дерево"
		private static RoutedUICommand cleaves;		// Команда "Листья"
		private static RoutedUICommand cmandelbrot;	// Команда "Мандельброт"

		private static RoutedUICommand ccellular;		// Команда "Клеточная текстура"

		private static RoutedUICommand cperlinNoise;	// Команда "шум Перлина"

	// Окно "Фрактальное дерево"
		private static RoutedUICommand ctreeChColor;		// Команда выбора цвета
		private static RoutedUICommand ctreePreview;		// Команда "Просмотр"
		private static RoutedUICommand ctreeGenerate;		// Команда "Генерировать"
	// Окно "Фрактальные листья"
		private static RoutedUICommand cleavesChColor;		// Команда выбора цвета
		private static RoutedUICommand cleavesPreview;		// Команда "Просмотр"
		private static RoutedUICommand cleavesGenerate;		// Команда "Генерировать"
	// Окно "Фрактал Мандельброта"
		private static RoutedUICommand cmandelbrotChColor;	// Команда выбора цвета
		private static RoutedUICommand cmandelbrotPreview;	// Команда "Просмотр"
		private static RoutedUICommand cmandelbrotGenerate;	// Команда "Генерировать"

	// Окно генератор "Клеточная текстура"
		private static RoutedUICommand ccellularChColor;		// Команда выбора цвета
		private static RoutedUICommand ccellularGenerate;		// Команда "Генерировать"
	// Окно генератор "Шум Перлина"
		private static RoutedUICommand cperlinNoiseGenerate;	// Команда "Генерировать"
/////////////////////////////////////////////////////////////////////////////////////
		
// Фильтры //////////////////////////////////////////////////////////////////////////
		private static RoutedUICommand crotateChannelsRGB;		// Команда "Вращение каналов" (RGB)
		private static RoutedUICommand cchannelFilteringRGB;	// Команда "Канальный фильтр" (RGB)
		private static RoutedUICommand cextractChannelRGB;		// Команда "Вырезка канала" (RGB)
		private static RoutedUICommand crotateChannelsYCbCr;	// Команда "Вращение каналов" (YCbCr)
		private static RoutedUICommand cchannelFilteringYCbCr;	// Команда "Канальный фильтр" (YCbCr)
		private static RoutedUICommand cextractChannelYCbCr;	// Команда "Вырезка канала" (YCbCr)
		private static RoutedUICommand cwave;					// Команда "Волна"
		private static RoutedUICommand cjitter;					// Команда "Дрожание"
		private static RoutedUICommand coilPainting;			// Команда "Масляная живопись"
		private static RoutedUICommand cmosaic;					// Команда "Мозаика"
		private static RoutedUICommand cposterization;			// Команда "Постеризация"
		private static RoutedUICommand cadditiveNoise;			// Команда "Аддитивный шум"
		private static RoutedUICommand csAPNoise;				// Команда "Соль и перец"
		private static RoutedUICommand csmoothing;				// Команда "Сглаживание"
		private static RoutedUICommand csepia;					// Команда "Сепия"
		private static RoutedUICommand courFilter;				// Команда "Свой пространственный фильтр"

	// Окно фильтр "Волна"
		private static RoutedUICommand cwaveFilter;				// Команда "Применить"
	// Окно фильтр "Дрожание"
		private static RoutedUICommand cjitterFilter;			// Команда "Применить"
	// Окно фильтр "Масляная живопись"
		private static RoutedUICommand coilPaintingFilter;		// Команда "Применить"
	// Окно фильтр "Мозаика"
		private static RoutedUICommand cmosaicFilter;			// Команда "Применить"
	// Окно фильтр "Постеризация"
		private static RoutedUICommand cposterizationFilter;	// Команда "Применить"
/////////////////////////////////////////////////////////////////////////////////////

// Коррекция ////////////////////////////////////////////////////////////////////////
		private static RoutedUICommand carbitrarily;			// Команда "Произвольно"
		private static RoutedUICommand cmirrorHorizontal;		// Команда "Отразить по горизонтали"
		private static RoutedUICommand cmirrorVertical;			// Команда "Отразить по вертикали"
		private static RoutedUICommand ccolor;					// Команда "Цвет"
		private static RoutedUICommand cbinarization;			// Команда "Бинаризация"
		private static RoutedUICommand cinvert;					// Команда "Инвертирование"
		private static RoutedUICommand cbrightnessAContrast;	// Команда "Яркость/Контрастность"
/////////////////////////////////////////////////////////////////////////////////////
		
// Настройки ////////////////////////////////////////////////////////////////////////
		private static RoutedUICommand cselectDB;	// Команда "Выбор БД"

	// Окно база данных 
		private static RoutedUICommand cselectPath;		// Команда "Выбрать директорию"
		private static RoutedUICommand cwSelectDB;		// Команда "Выбрать базу данных"
/////////////////////////////////////////////////////////////////////////////////////

// Справка //////////////////////////////////////////////////////////////////////////
		private static RoutedUICommand cabout;		// Команда "О программе IBoLT"
        /////////////////////////////////////////////////////////////////////////////////////

        #endregion Объявление команд

        #region Инициализация команд
        // Инициализация команд //


		static CommandsIBoLT()
		{
			InputGestureCollection inputs = new InputGestureCollection();

// Файл /////////////////////////////////////////////////////////////////////////////
			inputs.Add(new KeyGesture(Key.O , ModifierKeys.Control , "Ctrl+O"));
			creviewDB = new RoutedUICommand("Обзор базы", "cReviewDB", typeof(CommandsIBoLT), inputs); inputs.Clear();
			inputs.Add(new KeyGesture(Key.Q , ModifierKeys.Control , "Ctrl+Q"));
			cexit = new RoutedUICommand("Закрыть", "cExit", typeof(CommandsIBoLT), inputs);

	// Окно создать
			cnewCreate = new RoutedUICommand("Создать", "cNewCreate", typeof(CommandsIBoLT));

    // Окно "Обзор базы"
            cloadDataInTheTable = new RoutedUICommand("Заполнить", "cLoadDataInTheTable", typeof(CommandsIBoLT));
/////////////////////////////////////////////////////////////////////////////////////

// Генераторы ///////////////////////////////////////////////////////////////////////
			ctree = new RoutedUICommand("Дерево", "cTree", typeof(CommandsIBoLT));
			cleaves = new RoutedUICommand("Листья", "cLeaves", typeof(CommandsIBoLT));
			cmandelbrot = new RoutedUICommand("Мандельброт", "cMandelbrot", typeof(CommandsIBoLT));

			ccellular = new RoutedUICommand("Клеточная текстура", "cCellular", typeof(CommandsIBoLT));

			cperlinNoise = new RoutedUICommand("Шум Перлина", "cPerlinNoise", typeof(CommandsIBoLT));

	// Окно "Фрактальное дерево"
			ctreeChColor  = new RoutedUICommand("Выбор цвета", "cTreeChColor", typeof(CommandsIBoLT));
			ctreePreview  = new RoutedUICommand("Просмотр", "cTreePreview", typeof(CommandsIBoLT));
			ctreeGenerate = new RoutedUICommand("Генерировать", "cTreeGenerate", typeof(CommandsIBoLT));
	// Окно "Фрактальные листья"
			cleavesChColor  = new RoutedUICommand("Выбор цвета", "cLeavesChColor", typeof(CommandsIBoLT));
			cleavesPreview = new RoutedUICommand("Просмотр", "cLeavesPreview", typeof(CommandsIBoLT));
			cleavesGenerate = new RoutedUICommand("Генерировать", "cLeavesGenerate", typeof(CommandsIBoLT));
	// Окно "Фрактал Мандельброта"
			cmandelbrotChColor  = new RoutedUICommand("Выбор цвета", "cMandelbrotChColor", typeof(CommandsIBoLT));
			cmandelbrotPreview  = new RoutedUICommand("Просмотр", "cMandelbrotPreview", typeof(CommandsIBoLT));
			cmandelbrotGenerate = new RoutedUICommand("Генерировать", "cMandelbrotGenerate", typeof(CommandsIBoLT));

	// Окно генератор "Клеточная текстура"
			ccellularChColor = new RoutedUICommand("Выбор цвета", "cCellularChColor", typeof(CommandsIBoLT));
			ccellularGenerate = new RoutedUICommand("Генерировать", "cCellularGenerate", typeof(CommandsIBoLT));

	// Окно генератор "Шум Перлина"
			cperlinNoiseGenerate = new RoutedUICommand("Генерировать", "cPerlinNoiseGenerate", typeof(CommandsIBoLT));
/////////////////////////////////////////////////////////////////////////////////////

// Фильтры //////////////////////////////////////////////////////////////////////////
			crotateChannelsRGB = new RoutedUICommand("Вращение каналов", "cRotateChannelsRGB", typeof(CommandsIBoLT));
			cchannelFilteringRGB = new RoutedUICommand("Канальный фильтр", "cChannelFilteringRGB", typeof(CommandsIBoLT));
			cextractChannelRGB = new RoutedUICommand("Вырезка канала", "cExtractChannelRGB", typeof(CommandsIBoLT));
			crotateChannelsYCbCr = new RoutedUICommand("Вращение каналов", "cRotateChannelsYCbCr", typeof(CommandsIBoLT));
			cchannelFilteringYCbCr = new RoutedUICommand("Канальный фильтр", "cChannelFilteringYCbCr", typeof(CommandsIBoLT));
			cextractChannelYCbCr = new RoutedUICommand("Вырезка канала", "cExtractChannelYCbCr", typeof(CommandsIBoLT));
			cwave = new RoutedUICommand("Волна", "cWave", typeof(CommandsIBoLT));
			cjitter = new RoutedUICommand("Дрожание", "cJitter", typeof(CommandsIBoLT));
			coilPainting = new RoutedUICommand("Масляная живопись", "cOilPainting", typeof(CommandsIBoLT));
			cmosaic = new RoutedUICommand("Мозаика", "cMosaic", typeof(CommandsIBoLT));
			cposterization = new RoutedUICommand("Постеризация", "cPosterization", typeof(CommandsIBoLT));
			cadditiveNoise = new RoutedUICommand("Аддитивный шум", "cAdditiveNoise", typeof(CommandsIBoLT));
			csAPNoise = new RoutedUICommand("Соль и перец", "cSAPNoise", typeof(CommandsIBoLT));
			csmoothing = new RoutedUICommand("Сглаживание", "cSmoothing", typeof(CommandsIBoLT));
			csepia = new RoutedUICommand("Сепия", "cSepia", typeof(CommandsIBoLT));
			courFilter = new RoutedUICommand("Свой пространственный фильтр", "cOurFilter", typeof(CommandsIBoLT));

	// Окно фильтр "Волна"
			cwaveFilter = new RoutedUICommand("Применить", "cWaveFilter", typeof(CommandsIBoLT));
	// Окно фильтр "Дрожание"
			cjitterFilter = new RoutedUICommand("Применить", "cJitterFilter", typeof(CommandsIBoLT));
	// Окно фильтр "Масляная живопись"
			coilPaintingFilter = new RoutedUICommand("Применить", "cOilPaintingFilter", typeof(CommandsIBoLT));
	// Окно фильтр "Мозаика"
			cmosaicFilter = new RoutedUICommand("Применить", "cMosaicFilter", typeof(CommandsIBoLT));
	// Окно фильтр "Постеризация"
			cposterizationFilter = new RoutedUICommand("Применить", "cPosterizationFilter", typeof(CommandsIBoLT));
/////////////////////////////////////////////////////////////////////////////////////

// Коррекция ////////////////////////////////////////////////////////////////////////
			carbitrarily = new RoutedUICommand("Произвольно", "cArbitrarily", typeof(CommandsIBoLT));
			cmirrorHorizontal = new RoutedUICommand("Отразить по горизонтали", "cMirrorHorizontal", typeof(CommandsIBoLT));
			cmirrorVertical = new RoutedUICommand("Отразить по вертикали", "cMirrorVertical", typeof(CommandsIBoLT));
			ccolor = new RoutedUICommand("Цвет", "cColor", typeof(CommandsIBoLT));
			cbinarization = new RoutedUICommand("Бинаризация", "cBinarization", typeof(CommandsIBoLT));
			cinvert = new RoutedUICommand("Инвертирование", "cInvert", typeof(CommandsIBoLT));
			cbrightnessAContrast = new RoutedUICommand("Яркость/Контрастность", "cBrightnessAContrast", typeof(CommandsIBoLT));
/////////////////////////////////////////////////////////////////////////////////////

// Настройки ////////////////////////////////////////////////////////////////////////
			cselectDB = new RoutedUICommand("База данных", "cSelectDB", typeof(CommandsIBoLT));

	// Окно база данных 
			cselectPath = new RoutedUICommand("Выбрать", "cSelectPath", typeof(CommandsIBoLT));
			cwSelectDB = new RoutedUICommand("Ок", "cWSelectDB", typeof(CommandsIBoLT));
/////////////////////////////////////////////////////////////////////////////////////

// Справка //////////////////////////////////////////////////////////////////////////
			cabout = new RoutedUICommand("О программе IBoLT", "cAbout", typeof(CommandsIBoLT));
/////////////////////////////////////////////////////////////////////////////////////
		}

        #endregion Инициализация команд

        #region Доступ к командам
        // Доступ к командам //

		
// Файл /////////////////////////////////////////////////////////////////////////////
		public static RoutedUICommand cReviewDB		{ get { return creviewDB; } }
		public static RoutedUICommand cExit			{ get { return cexit; } }

	// Окно создать
		public static RoutedUICommand cNewCreate	{ get { return cnewCreate; } }
    
   // Окно "Обзор базы"
        public static RoutedUICommand cLoadDataInTheTable { get { return cloadDataInTheTable; } }
/////////////////////////////////////////////////////////////////////////////////////
		
// Генераторы ///////////////////////////////////////////////////////////////////////
		public static RoutedUICommand cTree			{ get { return ctree; } }
		public static RoutedUICommand cLeaves		{ get { return cleaves; } }
		public static RoutedUICommand cMandelbrot	{ get { return cmandelbrot; } }

		public static RoutedUICommand cCellular		{ get { return ccellular; } }

		public static RoutedUICommand cPerlinNoise	{ get { return cperlinNoise; } }

	// Окно "Фрактальное дерево"
		public static RoutedUICommand cTreeChColor		{ get { return ctreeChColor; } }
		public static RoutedUICommand cTreePreview		{ get { return ctreePreview; } }
		public static RoutedUICommand cTreeGenerate		{ get { return ctreeGenerate; } }
	// Окно "Фрактальные листья"
		public static RoutedUICommand cLeavesChColor	{ get { return cleavesChColor; } }
		public static RoutedUICommand cLeavesPreview	{ get { return cleavesPreview; } }
		public static RoutedUICommand cLeavesGenerate	{ get { return cleavesGenerate; } }
	// Окно "Фрактал Мандельброта"
		public static RoutedUICommand cMandelbrotChColor	{ get { return cmandelbrotChColor; } }
		public static RoutedUICommand cMandelbrotPreview	{ get { return cmandelbrotPreview; } }
		public static RoutedUICommand cMandelbrotGenerate	{ get { return cmandelbrotGenerate; } }

	// Окно генератор "Клеточная текстура"
		public static RoutedUICommand cCellularChColor		{ get { return ccellularChColor; } }
		public static RoutedUICommand cCellularGenerate		{ get { return ccellularGenerate; } }

	// Окно генератор "Шум Перлина"
		public static RoutedUICommand cPerlinNoiseGenerate	{ get { return cperlinNoiseGenerate; } }
/////////////////////////////////////////////////////////////////////////////////////

// Фильтры //////////////////////////////////////////////////////////////////////////
		public static RoutedUICommand cRotateChannelsRGB		{ get { return crotateChannelsRGB; } }
		public static RoutedUICommand cChannelFilteringRGB		{ get { return cchannelFilteringRGB; } }
		public static RoutedUICommand cExtractChannelRGB		{ get { return cextractChannelRGB; } }
		public static RoutedUICommand cRotateChannelsYCbCr		{ get { return crotateChannelsYCbCr; } }
		public static RoutedUICommand cChannelFilteringYCbCr	{ get { return cchannelFilteringYCbCr; } }
		public static RoutedUICommand cExtractChannelYCbCr		{ get { return cextractChannelYCbCr; } }
		public static RoutedUICommand cWave						{ get { return cwave; } }
		public static RoutedUICommand cJitter					{ get { return cjitter; } }
		public static RoutedUICommand cOilPainting				{ get { return coilPainting; } }
		public static RoutedUICommand cMosaic					{ get { return cmosaic; } }
		public static RoutedUICommand cPosterization			{ get { return cposterization; } }
		public static RoutedUICommand cAdditiveNoise			{ get { return cadditiveNoise; } }
		public static RoutedUICommand cSAPNoise					{ get { return csAPNoise; } }
		public static RoutedUICommand cSmoothing				{ get { return csmoothing; } }
		public static RoutedUICommand cSepia					{ get { return csepia; } }
		public static RoutedUICommand cOurFilter				{ get { return courFilter; } }

	// Окно фильтр "Волна"
		public static RoutedUICommand cWaveFilter				{ get { return cwaveFilter; } }
	// Окно фильтр "Дрожание"
		public static RoutedUICommand cJitterFilter				{ get { return cjitterFilter; } }
	// Окно фильтр "Масляная живопись"
		public static RoutedUICommand cOilPaintingFilter		{ get { return coilPaintingFilter; } }
	// Окно фильтр "Мозаика"
		public static RoutedUICommand cMosaicFilter				{ get { return cmosaicFilter; } }
	// Окно фильтр "Постеризация"
		public static RoutedUICommand cPosterizationFilter		{ get { return cposterizationFilter; } }
/////////////////////////////////////////////////////////////////////////////////////
		
// Коррекция ////////////////////////////////////////////////////////////////////////
		public static RoutedUICommand cArbitrarily			{ get { return carbitrarily; } }
		public static RoutedUICommand cMirrorHorizontal		{ get { return cmirrorHorizontal; } }
		public static RoutedUICommand cMirrorVertical		{ get { return cmirrorVertical; } }
		public static RoutedUICommand cColor				{ get { return ccolor; } }
		public static RoutedUICommand cBinarization			{ get { return cbinarization; } }
		public static RoutedUICommand cInvert				{ get { return cinvert; } }
		public static RoutedUICommand cBrightnessAContrast	{ get { return cbrightnessAContrast; } }
/////////////////////////////////////////////////////////////////////////////////////

// Настройки ////////////////////////////////////////////////////////////////////////
		public static RoutedUICommand cSelectDB		{ get { return cselectDB; } }

	// Окно база данных
		public static RoutedUICommand cSelectPath	{ get { return cselectPath; } }
		public static RoutedUICommand cWSelectDB	{ get { return cwSelectDB; } }
/////////////////////////////////////////////////////////////////////////////////////
		
// Справка //////////////////////////////////////////////////////////////////////////
		public static RoutedUICommand cAbout		{ get { return cabout; } }
        /////////////////////////////////////////////////////////////////////////////////////

        #endregion Доступ к командам
    }
}
